package sqlTestes.criarSqlDeUmaTabela;

import infra.Cenario;
import junit.framework.Assert;

import org.junit.Test;

import sql.ddl.Tabela;
import sql.ddl.coluna.ColunaComposta;

public class TabelaComPrimaryKeyOutraTabela extends Cenario {
	Tabela tabela = null;
	String sql;

	public void dadoQue() {
		criaseAtabelaAgua();
		adcionarColunaCompostaDoTipoTabelaFogoComNomeFogo();
	}

	private void criaseAtabelaAgua() {
		tabela = new Tabela("Agua");
	}
	private void adcionarColunaCompostaDoTipoTabelaFogoComNomeFogo() {
		Tabela fogo = new Tabela("Fogo",true);
		try {
			tabela.addColuna(new ColunaComposta(fogo,"fogo"));
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public void quando() {
		gerarOSQL();
	}

	private void gerarOSQL() {
		sql = tabela.codigoSQL();
	}

	public void entao() {
		retornaraOSqlCreateTableAgua___();
	}

	@Test
	public void retornaraOSqlCreateTableAgua___() {
		Assert
				.assertEquals("CREATE TABLE Agua(fkFogo INT4 NOT NULL,FOREIGN KEY(fkFogo)REFERENCES Fogo(pkFogo))",
						sql);
	}
}
